Computing devices can often handle playback of multiple types of media. The media that may be played back by computing devices often includes numerous forms/formats of video, and numerous forms/formats of audio. Within such computing devices, one or more applications may play back media. Non-limiting examples of types of applications that may attempt to play back media within a handheld computing device include a telephone application, a web browser, an e-mail application, multimedia message service (MMS), a music player, and video player.
One factor that determines the perceived quality of audio is bit depth. In digital audio, bit depth indicates the number of bits recorded for each audio sample. Bit depth directly corresponds to the resolution of each audio sample in a set of digital audio data. The larger the bit depth, the more bits are allocated for each audio sample and, thus, more information is available to produce audio with higher fidelity. Common examples of bit depth include CD quality audio, which is recorded at 16 bits, and DVD audio, which can support up to 24-bit audio. Thus, “16-bit audio” refers to a bit depth of 16, “24-bit audio” refers to a bit depth of 24, etc.
For some desktop or laptop computers, a user is able to, via an audio setup application, configure an output device by selecting 16-bit or 24-bit as the bit depth. However, smaller audio processing devices, such as handheld electronic devices (e.g., mobile phones and tablet devices), typically only produce 16-bit audio, regardless of the output device (e.g., integrated or built-in speakers, headphones, USB audio devices) that is connected to the handheld device. One reason for only producing 16-bit audio is that handheld devices are power-constrained devices and producing 24-bit audio requires additional processing relative to producing 16-bit audio. Many handheld devices include one or more fixed-point decoders (e.g., one decoder for each audio format, such as AAC). Each decoder (either hardware or software) includes simple multiply and add units, each of which operate on integer numbers and produce 16-bit audio. Thus, even though a USB audio device that is connected to a handheld device may be able to output an analog signal based on 24-bit audio, the handheld device to which the USB audio device is connected only produces 16-bit audio for the USB audio device.
Other handheld devices have greater power and more sophisticated circuitry that can operate on floating-point numbers instead of integer numbers and can produce floating-point audio samples. Thus, the same decoders that traditionally exist for laptop and desktop computer may be used for these handheld devices. If the source audio content was in 24-bit, then operating in the floating point domain allows the dynamic range of the source audio content to be maintained and a high fidelity 24-bit audio can be produced.
However, an audio processing device always producing 16-bit audio or always producing 24-bit audio may have some disadvantages, depending on the connected output device and other factors that correspond to the state of the audio processing device. For example, some output devices can produce noticeably better-sounding audio based on 24-bit audio rather than 16-bit audio. Thus, always decoding source audio content to 16-bit audio will not realize the benefits available when such output devices are connected to the audio processing device. As another example, some output devices do not produce noticeably better-sounding audio based on 24-bit audio compared to 16-bit audio. Thus, always decoding source audio content to 24-bit may not be worth the extra processing required to decode to and/or operate on 24-bit audio.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.